可以將 runtime ( 執行中 ) 的程式,動態的改變 class or module or function,
且不需要修改 source code,通常使用在增加功能 ( 暫時性 ) 和修正 bugs。
例子:
class A:
def speak(self):
return "hello"
def speak_patch(self):
return "world"
A.speak = speak_patch # <2>
some_class = A()
print('some_class.speak():', some_class.speak()) # <1>
<1> 的部分會顯示 world
,而不會顯示 hello
,原因是因為我們在 <2> 的部分
將它 Monkey Patch 了,使用 speak_patch
這個 function 去取代掉原來的 speak
。
python - What is monkey patching? - Stack Overflow